package com.example.fw;

import java.util.Properties;

import org.netbeans.jemmy.ClassReference;
import org.netbeans.jemmy.operators.JFrameOperator;

public class ApplicationManager {
	
	private static ApplicationManager instance;
	
	public static ApplicationManager getInstance(){
		if(instance == null){
			instance = new ApplicationManager();
		}
		return instance;
	}
	
	
	private Properties properties;
	private FolderHelper folderHelper;
	private JFrameOperator mainFrame;
	private MenuHelper menuHelper;

	
	public void stop() {
		getApplication().requestClose();
	}
	
	public String getProperty(String key){
		return properties.getProperty(key);
	}
	
	public Properties getProperties() {
		return properties;
	}
	
	public void setProperties(Properties properties){
		this.properties = properties;
	}

	public FolderHelper getFolderHelper() {
		if(folderHelper == null){
			folderHelper = new FolderHelper(this);
		}
		
		return folderHelper;
	}

	public JFrameOperator getApplication() {
		if(mainFrame == null){
			try {
				new ClassReference("addressbook.AddressBookFrame").startApplication();
				mainFrame = new JFrameOperator("jAddressBook");
			} catch (Exception e) {
				e.printStackTrace();
				
				return null;
			}
		}
		
		return mainFrame;
	}

	public MenuHelper getMenuHelper() {
		if(menuHelper == null){
			menuHelper = new MenuHelper(this);
		}
		
		return menuHelper;
	}


}
